IT システムのテストの種類
テストについて
ソフトウェアテストは、開発と保守を通して、様々なレベル (テストレベル) で実行される
テストレベルは、テストの目標物 (テスト対象) とテストレベルの目的または目標によって識別される
テスト対象による分類 (『SWEBOK V4 Beta』 参照)
単体テスト (unit testing)
統合テスト (integration testing)
システムテスト (system testing)
受け入れテスト (acceptance testing)
テストの目的による分類 (『SWEBOK V4 Beta』 参照)
適合性試験 (Conformance Testing)
コンプライアンステスト (Compliance Testing)
設置試験 (Installation Testing)
アルファおよびベータテスト (Alpha and Beta Testing)
回帰テスト (Regression Testing)
優先順位付け試験 (Prioritization Testing)
非機能テスト (Non-functional Testing)
セキュリティテスト (Security Testing)
プライバシーテスト (Privacy Testing)
インターフェイスおよび API テスト (Interface and Application Program Interface (API) Testing)
構成テスト (Configuration Testing)
使用性および人と機械の相互作用テスト (Usability and Human-Computer Interaction Testing)
※ 全てを網羅できているわけではない
詳細設計との比較
モジュールテスト (コンポーネントテスト、ユニットテスト、単体テスト)
結合テスト (統合テスト)
外部仕様との比較
機能テスト (総合テスト、システムテストがそれに相当することもあるっぽい?)
要求 (利害関係者要件) との比較
システムテスト : 要求を受け取った側によるテスト
受け入れテスト (認可テスト) : 要求を出した側によるテスト
テストレベル
V 字モデルや W 字モデルにおけるテストレベル (『ソフトウェア品質知識体系ガイド (第 2 版) -SQuBOK Guide V2-』 より)
コンポーネントテスト (ユニットテスト・単体テスト) (実装 / コードの記述に対応)
統合テスト (結合テスト) (詳細設計 / システムの設計に対応)
システムテスト (総合テスト) (基本設計 / システムの仕様化に対応)
受け入れテスト (要求定義 / 要求の記述に対応)
テストスコープによる分類 (『プロダクトマネジメントのすべて』 より)
単体テスト : ソフトウェアの最小のモジュール単位での動作を確認する
結合テスト : 複数のモジュールを組み合わせた単位でのテスト
システムテスト : プロダクト全体のテスト。 エンドツーエンドテストとも呼ばれる
from はじめての設計をやり抜くための本 第 2 版
テスト対象プログラムの粒度の違い
単体テスト
結合テスト
システムテスト
from ソフトウェア・テストの技法 第 2 版
モジュールテスト (単体テスト)
統合テスト (integration test) (結合テストと同義?) : 別種のテスト段階とはみなされないことが多く、増加モジュール・テストのときにはモジュールテストに含まれる
機能テスト : プログラムと外部仕様との相違点を発見する過程
システムテスト : システムまたはプログラムが、元の目的仕様書の内容に合わないことを示そうとする過程
その製品について評価できる目的仕様書を作成しなければ、システム・テストは不可能
最も誤解されやすく、困難なテスト過程
完全なシステムまたはプログラムの機能をテストする過程ではない (それは機能テストと重複する)
目的仕様書は製品の正確な外部インターフェイスの情報を含まないので、それだけではテストケース構築ができない
だが、プログラムと目的仕様書の間のずれは外部仕様策定におけるエラーによるものが最も注意を要するので、テストケースの入力として外部仕様書は使用できない
どうする? → プログラムのユーザー文書や発行物を使う
とはいえ現実的には目的仕様書が作られることってそんなにない気がしていて、ソフトウェア要求仕様書 (いわゆる外部仕様が書かれた文書) を基にシステムテストが行われる気がしている (その中で機能テストも行う)
認可テスト
導入テスト (installation test) : 導入のエラーを見つけることが目的
システムを作成した組織が開発しなければならない